home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / KAOS1_52.ZIP / KAOS1-52
Text File  |  1993-06-13  |  32KB  |  621 lines

  1. Chaos Digest             Vendredi 11 Juin 1993        Volume 1 : Numero 52
  2.                             ISSN  1244-4901
  3.  
  4.        Editeur: Jean-Bernard Condat (jbcondat@attmail.com)
  5.        Archiviste: Yves-Marie Crabbe
  6.        Co-Redacteurs: Arnaud Bigare, Stephane Briere
  7.  
  8. TABLE DES MATIERES, #1.52 (11 Juin 1993)
  9. File 1--40H VMag Number 6 Volume 2 Issue 2 #00B-00C (reprint)
  10. File 2--Fortress: services de securite europeens a la loupe (rapport)
  11.  
  12. Chaos Digest is a weekly electronic journal/newsletter. Subscriptions are
  13. available at no cost by sending a message to:
  14.                 linux-activists-request@niksula.hut.fi
  15. with a mail header or first line containing the following informations:
  16.                     X-Mn-Admin: join CHAOS_DIGEST
  17.  
  18. The editors may be contacted by voice (+33 1 47874083), fax (+33 1 47877070)
  19. or S-mail at: Jean-Bernard Condat, Chaos Computer Club France [CCCF], B.P.
  20. 155, 93404 St-Ouen Cedex, France.  He is a member of the EICAR and EFF (#1299)
  21. groups.
  22.  
  23. Issues of ChaosD can also be found from the ComNet in Luxembourg BBS (+352)
  24. 466893.  Back issues of ChaosD can be found on the Internet as part of the
  25. Computer underground Digest archives. They're accessible using anonymous FTP:
  26.  
  27.         * kragar.eff.org [192.88.144.4] in /pub/cud/chaos
  28.         * uglymouse.css.itd.umich.edu [141.211.182.53] in /pub/CuD/chaos
  29.         * halcyon.com [192.135.191.2] in /pub/mirror/cud/chaos
  30.         * ftp.cic.net [192.131.22.2] in /e-serials/alphabetic/c/chaos-digest
  31.         * cs.ubc.ca [137.82.8.5] in /mirror3/EFF/cud/chaos
  32.         * ftp.ee.mu.oz.au [128.250.77.2] in /pub/text/CuD/chaos
  33.         * nic.funet.fi [128.214.6.100] in /pub/doc/cud/chaos
  34.         * orchid.csv.warwick.ac.uk [137.205.192.5] in /pub/cud/chaos
  35.  
  36. CHAOS DIGEST is an open forum dedicated to sharing French information among
  37. computerists and to the presentation and debate of diverse views. ChaosD
  38. material may be reprinted for non-profit as long as the source is cited.
  39. Some authors do copyright their material, and they should be contacted for
  40. reprint permission.  Readers are encouraged to submit reasoned articles in
  41. French, English or German languages relating to computer culture and
  42. telecommunications.  Articles are preferred to short responses.  Please
  43. avoid quoting previous posts unless absolutely necessary.
  44.  
  45. DISCLAIMER: The views represented herein do not necessarily represent
  46.             the views of the moderators. Chaos Digest contributors
  47.             assume all responsibility for ensuring that articles
  48.             submitted do not violate copyright protections.
  49.  
  50. ----------------------------------------------------------------------
  51.  
  52. Date: Tue May 11 09:24:40 PDT 1993
  53. From: 0005847161@mcimail.com (American_Eagle_Publication_Inc. )
  54. Subject: File 1--40H VMag Number 6 Volume 2 Issue 2 #00B-00C (reprint)
  55.  
  56.  
  57. 40Hex Number 6 Volume 2 Issue 2                                    File 00B
  58.  
  59.                       ++++++++++++++++++++++++++++++
  60.                        SCAN STRINGS, HOW THEY WORK,
  61.                            AND HOW TO AVOID THEM
  62.                       ++++++++++++++++++++++++++++++
  63.                                By Dark Angel
  64.                       ++++++++++++++++++++++++++++++
  65.  
  66. Scan strings  are the  scourge of  the virus author and the friend of anti-
  67. virus wanna-bes.   The  virus author  must find encryption techniques which
  68. can successfully  evade easy detection.  This article will show you several
  69. such techniques.
  70.  
  71. Scan strings,  as you  are well  aware, are  a collection of bytes which an
  72. anti-viral product  uses to  identify a virus.  The important thing to keep
  73. in mind  is that  these scan  strings represent  actual code  and can NEVER
  74. contain code  which could occur in a "normal" program.  The trick is to use
  75. this to your advantage.
  76.  
  77. When a  scanner checks  a file for a virus, it searches for the scan string
  78. which could  be located  ANYWHERE IN  THE FILE.   The  scanner doesn't care
  79. where it  is.   Thus, a  file which  consists solely of the scan string and
  80. nothing else  would be  detected as  infected by  a virus.   A  scanner  is
  81. basically  an   overblown  "hex  searcher"  looking  for  1000  signatures.
  82. Interesting, but  there's not  much you  can do  to exploit this.  The only
  83. thing you  can do  is to  write code so generic that it could be located in
  84. any program  (by chance).   Try  creating a  file with  the following debug
  85. script and  scanning it.   This  demonstrates the fact that the scan string
  86. may be located at any position in the file.
  87.  
  88. ---------------------------------------------------------------------------
  89.  
  90. n marauder.com
  91. e 0100  E8 00 00 5E 81 EE 0E 01 E8 05 00 E9
  92.  
  93. rcx
  94. 000C
  95. w
  96. q
  97.  
  98. ---------------------------------------------------------------------------
  99.  
  100. Although scanners  normally search  for decryption/encryption  routines, in
  101. Marauder's case,  SCAN looks  for the  "setup" portion  of the  code,  i.e.
  102. setting up  BP (to the "delta offset"), calling the decryption routine, and
  103. finally jumping to program code.
  104.  
  105. What you  CAN do  is to  either minimise  the scannable code or to have the
  106. code constantly  mutate into  something different.  The reasons are readily
  107. apparent.
  108.  
  109. The simplest  technique is  having multiple  encryption engines.   A  virus
  110. utilising this  technique has  a database  of encryption/decryption engines
  111. and uses  a random  one each  time it infects.  For example, there could be
  112. various forms  of XOR  encryption or  perhaps another  form of mathematical
  113. encryption.   The trick  is to  simply replace  the code for the encryption
  114. routine each time with the new encryption routine.
  115.  
  116. Mark Washburn  used this  in his  V2PX series of virii.  In it, he used six
  117. different  encryption/decryption   algorithms,  and   some  mutations   are
  118. impossible to detect with a mere scan string.  More on those later.
  119.  
  120. Recently, there  has been  talk of  the so-called  MTE, or mutating engine,
  121. from Bulgaria  (where else?).   It  utilises the multiple encryption engine
  122. technique.   Pogue Mahone  used the  MTE and it took McAfee several days to
  123. find a  scan string.   Vesselin  Bontchev, the McAfee-wanna-be of Bulgaria,
  124. marvelled the engineering of this engine.  It is distributed as an OBJ file
  125. designed to  be able to be linked into any virus.  Supposedly, SCANV89 will
  126. be able to detect any virus using the encryption engine, so it is worthless
  127. except for  those who  have an  academic interest  in such matters (such as
  128. virus authors).
  129.  
  130. However,  there   is  a  serious  limitation  to  the  multiple  encryption
  131. technique, namely  that scan  strings may  still be  found.   However, scan
  132. strings must  be isolated  for each  different encryption  mechanism.    An
  133. additional  benefit   is  the   possibility  that  the  antivirus  software
  134. developers will  miss some  of the  encryption mechanisms  so not  all  the
  135. strains of the virus will be caught by the scanner.
  136.  
  137. Now we  get to  a much better (and sort of obvious) method: minimising scan
  138. code length.   There are several viable techniques which may be used, but I
  139. shall discuss but three of them.
  140.  
  141. The one  mentioned before which Mark Washburn used in V2P6 was interesting.
  142. He first  filled the  space to  be filled  in with the encryption mechanism
  143. with dummy  one byte  op-codes such  as CLC, STC, etc.  As you can see, the
  144. flag manipulation  op-codes were  exploited.   Next, he randomly placed the
  145. parts of  his encryption  mechanism in  parts of this buffer, i.e. the gaps
  146. between the  "real" instructions were filled in with random dummy op-codes.
  147. In this manner, no generic scan string could be located for this encryption
  148. mechanism of  this virus.   However, the disadvantage of this method is the
  149. sheer size of the code necessary to perform the encryption.
  150.  
  151. A second  method is  much simpler than this and possibly just as effective.
  152. To minimise scan code length, all you have to do is change certain bytes at
  153. various intervals.   The  best way  to do  this can  be explained  with the
  154. following code fragment:
  155.  
  156.   mov si, 1234h                     ;Starting location of encryption
  157.   mov cx, 1234h                     ;Virus size / 2 + variable number
  158. loop_thing:
  159.   xor word ptr cs:[si], 1234h       ;Decrypt the value
  160.   add si, 2
  161.   loop loop_thing
  162.  
  163. In this code fragment, all the values which can be changed are set to 1234h
  164. for the  sake of  clarity.   Upon infection,  all you  have to do is to set
  165. these variable  values to  whatever is  appropriate  for  the  file.    For
  166. example, mov  bx, 1234h  would have  to be  changed to  have the encryption
  167. start at the wherever the virus would be loaded into memory (huh?).  Ponder
  168. this for  a few  moments and  all shall  become clear.   To  substitute new
  169. values into the code, all you have to do is something akin to:
  170.  
  171.   mov [bp+scratch+1], cx
  172.  
  173. Where scratch is an instruction.  The exact value to add to scratch depends
  174. on the  coding of  the op-code.   Some  op-codes take their argument as the
  175. second byte,  others take  the  third.    Regardless,  it  will  take  some
  176. tinkering before it is perfect.  In the above case, the "permanent" code is
  177. limited to  under five or six bytes.  Additionally, these five or six bytes
  178. could theoretically  occur in  ANY PROGRAM  WHATSOEVER, so  it would not be
  179. prudent for  scanners to search for these strings.  However, scanners often
  180. use scan  strings with wild-card-ish scan string characters, so it is still
  181. possible for a scan string to be found.
  182.  
  183. The important  thing to  keep in  mind when using this method is that it is
  184. best for  the virus  to use separate encryption and decryption engines.  In
  185. this manner, shorter decryption routines may be found and thus shorter scan
  186. strings will  be needed.   In  any  case,  using  separate  encryption  and
  187. decryption engines increases the size of the code by at most 50 bytes.
  188.  
  189. The last method detailed is theft of decryption engines.  Several shareware
  190. products utilise  decryption engines  in their  programs to  prevent simple
  191. "cracks" of  their products.   This  is, of  course, not a deterrent to any
  192. programmer worth  his salt,  but it  is useful  for virus  authors.  If you
  193. combine the  method above  with  this  technique,  the  scan  string  would
  194. identify the  product as  being infected with the virus, which is a) bad PR
  195. for the company and b) unsuitable for use as a scan string.  This technique
  196. requires virtually  no effort,  as the decryption engine is already written
  197. for you by some unsuspecting PD programmer.
  198.  
  199. All the  methods described  are viable  scan  string  avoidance  techniques
  200. suitable for  use in  any virus.   After  a few practice tries, scan string
  201. avoidance should  become  second  nature  and  will  help  tremendously  in
  202. prolonging the effective life of your virus in the wild.
  203.  
  204. +++++
  205.  
  206. 40Hex Number 6 Volume 2 Issue 2                                     File 00C
  207.  
  208.                         ++++++++++++++++++++++++
  209.                              Virus Contest!
  210.                            'The Spammies(tm)'
  211.                         ++++++++++++++++++++++++
  212.                         Deadline: July 4th, 1992
  213.  
  214.  
  215.    This is the first PHALCON/SKISM virus contest.  As a matter of fact, this
  216. is the first contest of its kind.  We believe that it will motivate you to
  217. produce more original code, rather than more hacks.  Winners may have already
  218. won $10,000,000, as well as the prestige of winning the first ever 'Spammie'
  219. awards.
  220.  
  221.  
  222. Rules and Regulations:
  223. 1)  All submissions must be original source code. (no hacks)
  224. 2)  Only one submission is allowed per programmer, plus one group project.
  225. 3)  All viruses must be recieved by us before July 4th, 1992.
  226. 4)  Viruses must be accompanied by a complete entry form. (see below)
  227. 5)  The original, compilable, commented source MUST be included, along with an
  228.     installer program, or a dropper, in the case of boot block viruses.
  229. 6)  Entries must include a location where the author may be contacted, such as
  230.     an email address or a BBS.
  231. 7)  Personnel or persons related to personnel of PHALCON/SKISM are not
  232.     eligable.
  233. 8)  The source must compile without error under Tasm or Masm (please specify
  234.     what assembler and version you used, along with the necessary command line
  235.     switches).  If we cannot compile your virus, it will be disqualified.
  236. 9)  All entries recieve a free subscription to 40hex.  (hehehehe)
  237. 10) The entry must be uploaded privately to the sysop, stating that it is a
  238.     contest entry.
  239. 11) The viruses must not be detectable by the current version (as of July 4th)
  240.     of any known virus scanner.
  241. 12) Viruses will be judged by our 'panel of experts' in three catagories.
  242.     6.1)  Stealth
  243.     6.2)  Size
  244.     6.3)  Reproductivity
  245.     6.4)  Performance
  246.         For example, Red Cross is an example of a 'high performance' virus.
  247.         It was entertaining and well done.
  248.  
  249. *** Entry Form
  250.  
  251. Handle ________________________
  252. Group Afiliation ______________
  253. Virus Name ____________________
  254. Size ____bytes (if you need more spaces, go away)
  255. Type               ___ File Infector ___ Boot block
  256. Infection method   ___ Direct Action ___ Memory Resident   ___ Directory chain
  257.                    ___ Other (please describe it in detail)
  258. Encryption routine ___ None (bah)    ___ Xor loop
  259.                    ___ Other (please describe it in detail)
  260.  
  261. Describe what makes your infection routine unique.
  262. _____________________________________________________________________________
  263. _____________________________________________________________________________
  264. Describe what makes your encryption routine unique.
  265. _____________________________________________________________________________
  266. _____________________________________________________________________________
  267. Describe what means your virus uses, other than encryption, to keep itself
  268. hidden.
  269. _____________________________________________________________________________
  270. _____________________________________________________________________________
  271. What is the largest possible scan string for this virus?  __bytes
  272.  
  273. What else sets this virus apart from other viruses?
  274. _____________________________________________________________________________
  275. _____________________________________________________________________________
  276. _____________________________________________________________________________
  277.  
  278. ------------------------------
  279.  
  280. Date: Fri Jun 11 15:02:53 BST 1993
  281. From: internet!baltimore.ie!susan (Susan Barry )
  282. Subject: File 2--Fortress: services de securite europeens a la loupe (rapport)
  283.  
  284.  
  285.                   IMPLEMENTING AND PROVING SECURITY
  286.                SERVICES FOR THE RARE/COSINE COMMUNITY
  287.  
  288.     Susan Barry, Patricia McQuillan, Michael Purser (Baltimore Technologies)
  289.                Jonathan Moffett  (University of York)
  290.  
  291.  
  292. Summary
  293. +-------
  294.  
  295. Secure electronic-mail (PEM) and remote access services, using asymmetric key
  296. cryptology have been developed and proved between  several European countries.
  297. The paper reviews the project; high-lighting its shortcomings, since they are
  298. most likely to be of interest to others.
  299.  
  300. 1. Introduction
  301. +---------------
  302.  
  303. The COSINE Sub-Project P8 (now named "FORTRESS") provides secure electronic
  304. mail (Privacy Enhanced Mail: PEM) and remote access services over wide area
  305. networks using asymmetric key cryptology.  Its main features have been
  306. described in a previous paper [1].  The design phase lasted from November
  307. 1991 until April 1992, and the implementation terminated in October 1992 with
  308. the installation of systems in six different countries.  From then until March
  309. 1993 evaluation and proving of FORTRESS took place.  This paper is largely
  310. concerned with this latter aspect of the project.  However it is necessary
  311. to review the security services provided if the evaluation and proving are
  312. to be meaningful.  This is done in Section 2.  Sections 3 and 4 are critiques
  313. of the user-related and technical aspects of the services.  Section 5
  314. describes the proving process, and Section 6 contains brief conclusions.
  315.  
  316. 2. Security Service Overview
  317. +----------------------------
  318.  
  319. The principal service provided is secure messaging based on PEM [2].  Messages
  320. may be guaranteed as uncorrupted and authentic by attaching the sender's
  321. digital signature to them; and may be made confidential by means of encryption
  322. Public key cryptology (RSA) [3], is used for the signatures, and for
  323. encrypting the symmetric keys which in turn are used to encrypt (DES) [4] the
  324. message text.  The use of public key cryptology implies the existence of a
  325. Certification Authority (CA) which issues certificates guaranteeing the
  326. genuineness of users' public keys.  (This is done by having the CA sign the
  327. user's identity and public key as a unit.)  In FORTRESS the CA, operated in
  328. Dublin by Baltimore Technologies, generates as well as certifies users' secret
  329. and public keys.  New users are "recommended" by existing privileged users,
  330. called Security Administrators (SAs); and this is an on-line operation between
  331. the SA's system and the CA over the network.This remote access to the CA is
  332. made secure by means of a two-way X.509 strong authentication procedure [5],
  333. in which both parties are reciprocally and securely identified, and during
  334. which a symmetric key is established for stream-encrypting the subsequent
  335. dialogue using BSA [6].
  336.  
  337. In response to a successful Recommendation an SA receives, on behalf of the
  338. new user, a Personal Secure Environment (PSE) encrypted under  a DES-key,
  339. derived from a PIN via a one-way function.  This PIN is itself submitted,
  340. encrypted, in the prior recommendation.  The PSE  contains the user's secret
  341. key and other cryptographic data.  It is a  local matter as to how this PSE
  342. is made available to the new user; but  once this has been achieved he can
  343. perform signing/authentication and encryption/decryption operations for PEM
  344. and access to the CA, by entering his PIN as required to decrypt (momentarily)
  345. his PSE.  Naturally, the user's first operation on receiving a PSE will be to
  346. change the PIN.
  347.  
  348. In addition to Recommendations, other applications at the CA are made
  349. available to users over the secure remote access service.  For example an
  350. SA can revoke a certificate, and place it on a blacklist.  Revocation would
  351. apply if the certificate owner's secret key were compromised, or if the owner
  352. were no longer considered to be a suitable system user.  Ordinary users can
  353. also access the blacklist on the CA, to read it or download it.  They can
  354. download the database of valid certificates.  They can access news files, etc.
  355.  
  356. To enable the CA to distinguish between ordinary and privileged users (SAs),
  357. a user's authorisation attributes are built into his certificate.  (Other
  358. information, such as an expiry date for its validity, is also built into
  359. the certificate.)  The CA uses these attributes to control Recommendations,
  360. Revocations and other operations according to an authorisation hierarchy.
  361. For example, only certain SAs can recommend new SAs at a new user site; SAs
  362. in one country cannot revoke users in another; etc.  However, the presence
  363. of authorisation attributes in the certificate (a necessary concept borrowed
  364. from architectures such as Kerberos [7], SESAME [8]) causes a FORTRESS
  365. certificate to be non-standard; i.e. not compatible with X.509.  (There are
  366. plans to overcome this problem, maintaining FORTRESS certificates for use
  367. with remote access, but introducing further X.509-compatible certificates
  368. to allow interworking with other systems, e.g. the "Password" project.)
  369. At the CA, there are additional functions which enable operators to generate
  370. RSA keys, maintain the database and blacklist, etc.  The access of operators
  371. to the CA is controlled by smart cards.
  372.  
  373. GMD's SecuDe software was used as a basis for the development of the FORTRESS
  374. software; in particular, it provided the PEM implementation, and the basic
  375. functions of the CA.  The associated user interfaces, and the software for
  376. the secure remote access service, have been developed by Baltimore.  The
  377. systems run under Unix, on SUN workstations.  The remote access to the CA
  378. is over X.25 networks.
  379.  
  380. 3. User Aspects - a Critique
  381. +----------------------------
  382.  
  383. Most of the problems in FORTRESS were related to the user's view and
  384. management of the system.
  385.  
  386. The CA and its applications, accessed over the secure remote access
  387. service, are merely security infrastructure for PEM - or possibly some
  388. other future applications such as secure file transfer or EDI.  PEM
  389. itself consists of two services : PEM-SCAN (process a received PEM
  390. message) and PEM-CREATE (or generate a PEM message).  These services
  391. are essentially file-to-file processors, which perform the
  392. cryptographic functions on the way.  They are simple to use, but they
  393. are not integrated with any mail or messaging system; principally
  394. because too many differing mail systems, not to mention user
  395. interfaces, exist amongst project participants.  Thus a sender of a
  396. PEM message first creates the message; then processes it with PEM-
  397. CREATE; and finally uses his normal mail service to transmit the file
  398. created by PEM-CREATE.  This is inconvenient for users.
  399. The security of the users' end-systems, although it is explicitly
  400. outside the scope of the project, is however another practical
  401. limitation on the service.  Apart from the user's encrypted PSE there
  402. is no other project-provided protection of his system.  In particular,
  403. the genuineness of the code is not checked; and there is no secure
  404. control of local access (e.g. over a LAN) to the system.  Thus a user,
  405. accessing his PEM facility, very probably not only sends his User-ID
  406. and Password in clear over the LAN, but also his PSE PIN.  In reality,
  407. if a user is to have confidence in the security of the PEM service, it
  408. is necessary to install the end-system in a secure environment with
  409. controlled access.
  410.  
  411. The decision to provide on-line access to the CA is, we believe, a
  412. good one.  But it does imply that the CA should provide fast response.
  413. This is not always the case.  Firstly, Recommendations give rise to
  414. the generation of RSA keys, which may take many seconds - indeed more
  415. than a minute.  A solution to this can be provided by pre-generating
  416. keys, and holding them in a cache; although there are obvious security
  417. risks with this approach.  Secondly, on-line user operations involving
  418. the data base of extant and the blacklist of withdrawn certificates
  419. can become quite lengthy if those lists are large.  Some conventional
  420. data processing techniques (sorting!) could have been profitably used
  421. in the FORTRESS project.
  422.  
  423. The project was conceived with a single CA serving many participants
  424. in many countries, with secure remote access to the CA over X.25.
  425. This gives rise to many anomalies.  For example, whereas participants
  426. may have local security policies, procedures, etc.; the CA (whose
  427. security is fundamental to all services) is not subject to those
  428. policies.  There are questions about who is responsible for handling
  429. security incidents.  There must be questions in participants' minds as
  430. to how secure the CA really is.  In reality, serious users wish to
  431. operate their own CAs for secure internal traffic.  Insofar as they
  432. require secure external communication services; these could be
  433. supported by the cross-certification of CAs' public keys, enabling a
  434. user in one domain to authenticate a certificate belonging to a user
  435. in another domain.  In turn, if CAs are to be local, it might be wiser
  436. to have them operate over a LAN-compatible infrastructure; rather than
  437. over X.25.
  438.  
  439. In an operational environment, as opposed to FORTRESS' pilot service,
  440. another problem affecting users is that of out-of-date certificates.
  441. In principle, a signature to a document is valid long after the
  442. signatory's secret key has expired; provided that the signature was
  443. generated before the expiry.  Similarly, a message may be held in
  444. encrypted form for years; and the public key required to decrypt it
  445. should be still available, even if withdrawn.  There is a need for a
  446. service making available out-of-date certificates to users, which has
  447. not yet been addressed in FORTRESS.
  448.  
  449. The above problem areas:
  450.  
  451. * PEM integration with the user's preferred mail environment
  452. * Security of users' end-systems
  453. * On-line response delays at the CA
  454. * In-house versus external CA
  455. * The availability of expired certificates to users have been identified
  456.   by FORTRESS participants and the development team as important.
  457. * Designers and implementors of future systems are advised to take note!
  458.  
  459. 4. Technical Aspects - the Critique continues
  460. +---------------------------------------------
  461.  
  462. The FORTRESS security services work well and effectively; but there is
  463. room for improvement.  In addition to aspects visible to users (see
  464. above) there are technical problem areas visible only to system
  465. operators, or to software specialists.  Some of these are now
  466. presented.
  467.  
  468. The initialisation of security systems usually requires manual or
  469. semi-manual procedures for the distribution of first-time keys, PINs,
  470. etc.  Similarly, reinitialisation (e.g. when a key is compromised)
  471. will need such procedures, which may indeed be more demanding.  As an
  472. example, if a new public key for the CA is to replace the old one,
  473. because the old one can no longer be trusted, a major logistical
  474. problem arises since all systems are affected.  The solutions to these
  475. initialisation problems need to be carefully specified in advance; not
  476. left to improvisation - possibly in panic conditions.
  477.  
  478. The identification of persons and systems is always more complex than
  479. it appears.  FORTRESS' SecuDe uses serial numbers as unique
  480. identifiers of certificates (per issuer).  But users refer to a
  481. certificate by its owner's name.  The maintenance of an unambiguous
  482. mapping between the two - given that users may have more than one
  483. certificate, may be Revoked and re-Recommended several times, etc. -
  484. is a potential source of problems.  Additionally, how is the integrity
  485. of this serial number within the certificate-generating software
  486. assured?  What form should the user's name take?  The PEM naming
  487. hierarchy does not recognize the existence of a supranational entity
  488. such as COSINE (or Europe) within which countries in the X.500 name
  489. structure can fit.
  490.  
  491. The FORTRESS CA is operated by the system developers, Baltimore
  492. Technologies.  It is a PIN-controlled application accessed from Unix.
  493. This situation should be reversed.  The CA should be the main program
  494. (PIN-controlled), with escape to Unix barred unless the operator has
  495. special privileges.  The PIN itself is read from a chipcard; but it is
  496. inserted into the chipcard "manually".  A rigorous separation between
  497. development and operation is required, in which developers hand over
  498. to operators a system (such as the CA) in which the operator's
  499. capabilities are defined and restricted.  If this hand-over is
  500. accepted the operator can thereafter be made accountable for the
  501. system.
  502.  
  503. Users of the systems must trust the correctness of the software.  But
  504. in security systems there is ample scope for "spoof" software, which
  505. (for example) states that a signature has been authenticated
  506. correctly, a remote system has been identified securely, or a text has
  507. been encrypted, when it has not.  Spoof software can trick users into
  508. entering their PINs to it, or into performing one operation
  509. (Revocation) when another was intended (Recommendation).  Really
  510. secure software should be encrypted on file, integrity checked on
  511. loading; backups should be integrity checked and encrypted; etc.
  512. FORTRESS does not do this.
  513.  
  514. However cryptographic keys are secured (e.g. in encrypted PSEs for
  515. FORTRESS) there comes a time when they are used.  Unless this is done
  516. within tamper-proof hardware, they are then at risk.  Spoof software
  517. (see above) can capture them.  More prosaically, a user may simply be
  518. diverted half-way through such a critical operation - and the key left
  519. unprotected in memory.  Timeouts and memory clean-up facilities are
  520. needed to minimise such risks.  FORTRESS employs timeouts, but
  521. systematic clearing of memory after use is not practised.
  522.  
  523. In addition to the above problem areas there are several other
  524. vulnerabilities in the FORTRESS implementation; ranging from basic
  525. design problems (such as one PSE for the CA and all its operators) to
  526. omissions (such as proper purging facilities, e.g. for the certificate
  527. blacklist) due to time constraints and the limited scale of the
  528. project.  Most of these however are minor, and too particular to
  529. FORTRESS to be worth detailing here.
  530.  
  531. 5. The Proving Process
  532. +----------------------
  533.  
  534. The points made in Sections 3 and 4 were identified in the course of
  535. the proving phase.
  536.  
  537. The COSINE Project Management Unit, right from the start, regarded the
  538. testing out of the effectiveness of the security services as an
  539. integral part of the sub-project, and planned and budgeted for this
  540. activity.  Budgetary constraints meant that it was not possible to
  541. bring in independent consultants to perform the entire proving
  542. activity, because of the amount of time which would have been required
  543. for familiarisation with the details of the system.  Therefore the
  544. paper analysis and computer-based attacks were undertaken by the
  545. developers, supervised by an independent consultant.
  546.  
  547. A systematic proving process was planned, involving both developers
  548. and users.  It included :
  549.  
  550. * The regular exchange of valid and deliberately corrupted PEM messages
  551.   between participants over a 3-month period, according to a weekly
  552.   rota.  These exchanges revealed much about "user-friendliness", and
  553.   the reliability of the underlying E-Mail carriers, but no occurrences
  554.   of security failures were recorded.
  555.  
  556. * A "paper" analysis of the systems implemented which culminated in a
  557.   list of some 60 potential vulnerabilities; the most important of which
  558.   have been discussed above.
  559.  
  560. * Computer-based attacks on the security mechanisms, using defective
  561.   certificates, weak keys, etc.  These attacks were designed to probe
  562.   further the vulnerabilities identified in the paper analysis.  In
  563.   reality, while interesting, they yielded no unforeseen results.
  564.  
  565. Conclusion
  566. +----------
  567.  
  568. The proving activity in the project has served two useful purposes:
  569.  
  570. It has ensured that a number of weaknesses, already known to the
  571. developers, were collected and evaluated in a methodical fashion.
  572. The systematic computer-based attacks, which revealed no further
  573. significant weaknesses, gave additional confidence in the robustness
  574. of the system.
  575.  
  576. The FORTRESS systems and software have proved to be remarkably secure
  577. and robust, given their pilot nature.  The weaknesses which have been
  578. identified are almost all in the "environment" - the physical, network
  579. and organisational surroundings within which FORTRESS operates.
  580.  
  581. Genuine FORTRESS problems are few, and essentially easily remedied.
  582. More generally, in retrospect it is clear that although the
  583. international "community" approach was necessary under COSINE, the
  584. requirement for operational security services is nearly always
  585. internal - within an organisation.  The FORTRESS products need to be
  586. adapted to this requirement (e.g. a foolproof CA); and real user
  587. groups (generally administrative not technical persons) need to be
  588. prepared to receive them.
  589.  
  590. This is the intended next phase of the project.
  591.  
  592. Acknowledgements
  593. +----------------
  594.  
  595. It is a pleasure to acknowledge the cooperation received by all
  596. participants in the project; and the support and guidance given by the
  597. COSINE Project Management Unit; in particular Maria Pallares.
  598.  
  599. References
  600. +----------
  601.  
  602. 1. "COSINE Sub-Project P8 : security services" Purser, Computer
  603.    Networks and ISDN Systems 25 (1992) 476-482, North Holland.
  604. 2. "Privacy Enhanced Mail" RFC 1113, 1114, 1115 Internet.
  605. 3. "A method for obtaining digital signatures and public key
  606.    cryptosystems" Rivest, Shamir and Adleman.  Comm. ACM 21 (1978).
  607. 4. "Data Encryption Algorithm" ANSI X3.92.
  608. 5. "The Directory - Authentication Framework" CCITT (Blue Book)
  609.    Fascicle VIII.8 X.509 (1988).
  610. 6. "A fast stream encryptor" Purser, unpublished.
  611. 7. "The Kerberos Network Authentication Service Overview" MIT
  612.    Project Athena RFC, Draft 1, April 1989.
  613. 8. "SESAME (Secure European System for applications in a Multivendor
  614.    Environment) - An Introduction".  (Bull/ICL/SNI) Tom Parker, ICL
  615.    Secure Systems.
  616.  
  617. ------------------------------
  618.  
  619. End of Chaos Digest #1.52
  620. ************************************
  621.